#ifndef BM_TIME_H
#define BM_TIME_H

#include <SDL/SDL.h>

class BMTimer {
    private:
		int startTicks; // used for counting ticks  after started
		int pausedTicks; // used for counting ticks while paused
		int paused; // the started variable which is used for testing if the timer was started
		int started; // the started variable which is used for testing if the timer was started
		int fps; // used for frame delay

    public:
        BMTimer(); // Init the timer
        void allocate();// Allocates memory for timer
        void start();// Start the Timer (Useful for frame delay)
        void stop();// Stop Timer and reset the ticks
        void pause();// Pause the Timer from ticking
        void resume();// Resume the timer from the pause
        int getTicks();// Returns the number of Ticks from the timer's pausedTicks if paused or  startTicks if started
        int getStarted();// Retruns 1 if the timer was started
        int getPaused(); // Returns 1 if the timer is paused
        void freeTimer(); // Free the timer from its chains of burden, lol
        void frameDelay(); // Delay the frame according to the timer and the fps
        void setFPS(int fpsr); // Set the variable  which holds the frames per second rate
};
#endif
